<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
      <title>Class ActSpiralMcXyzContour | HiAPI-C# 2025 </title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta name="title" content="Class ActSpiralMcXyzContour | HiAPI-C# 2025 ">
      
      <meta name="description" content="Represents a spiral contour movement in machine XYZ coordinates.">
      <link rel="icon" href="../img/HiAPI.favicon.ico">
      <link rel="stylesheet" href="../public/docfx.min.css">
      <link rel="stylesheet" href="../public/main.css">
      <meta name="docfx:navrel" content="../toc.html">
      <meta name="docfx:tocrel" content="toc.html">
      
      <meta name="docfx:rel" content="../">
      
      
      
      <meta name="loc:inThisArticle" content="In this article">
      <meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
      <meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
      <meta name="loc:tocFilter" content="Filter by title">
      <meta name="loc:nextArticle" content="Next">
      <meta name="loc:prevArticle" content="Previous">
      <meta name="loc:themeLight" content="Light">
      <meta name="loc:themeDark" content="Dark">
      <meta name="loc:themeAuto" content="Auto">
      <meta name="loc:changeTheme" content="Change theme">
      <meta name="loc:copy" content="Copy">
      <meta name="loc:downloadPdf" content="Download PDF">

      <script type="module" src="./../public/docfx.min.js"></script>

      <script>
        const theme = localStorage.getItem('theme') || 'auto'
        document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
      </script>

  </head>

  <body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
    <header class="bg-body border-bottom">
      <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
        <div class="container-xxl flex-nowrap">
          <a class="navbar-brand" href="../index.html">
            <img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
            
          </a>
          <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
            <i class="bi bi-three-dots"></i>
          </button>
          <div class="collapse navbar-collapse" id="navpanel">
            <div id="navbar">
              <form class="search" role="search" id="search">
                <i class="bi bi-search"></i>
                <input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
              </form>
            </div>
          </div>
        </div>
      </nav>
    </header>

    <main class="container-xxl">
      <div class="toc-offcanvas">
        <div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
          <div class="offcanvas-header">
            <h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
            <button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
          </div>
          <div class="offcanvas-body">
            <nav class="toc" id="toc"></nav>
          </div>
        </div>
      </div>

      <div class="content">
        <div class="actionbar">
          <button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
            <i class="bi bi-list"></i>
          </button>

          <nav id="breadcrumb"></nav>
        </div>

        <article data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour">



  <h1 id="Hi_Numerical_Acts_ActSpiralMcXyzContour" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour" class="text-break">
Class ActSpiralMcXyzContour  
  </h1>

  <div class="facts text-secondary">
    <dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Numerical.html">Numerical</a>.<a class="xref" href="Hi.Numerical.Acts.html">Acts</a></dd></dl>
  <dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
  </div>

  <div class="markdown summary"><p>Represents a spiral contour movement in machine XYZ coordinates.</p>
</div>
  <div class="markdown conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class ActSpiralMcXyzContour : IActDuration, IActMcXyzabcContour, IAct</code></pre>
  </div>




  <dl class="typelist inheritance">
    <dt>Inheritance</dt>
    <dd>
      <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
      <div><span class="xref">ActSpiralMcXyzContour</span></div>
    </dd>
  </dl>

  <dl class="typelist implements">
    <dt>Implements</dt>
    <dd>
      <div><a class="xref" href="Hi.Numerical.Acts.IActDuration.html">IActDuration</a></div>
      <div><a class="xref" href="Hi.Numerical.Acts.IActMcXyzabcContour.html">IActMcXyzabcContour</a></div>
      <div><a class="xref" href="Hi.Numerical.Acts.IAct.html">IAct</a></div>
    </dd>
  </dl>


  <dl class="typelist inheritedMembers">
    <dt>Inherited Members</dt>
    <dd>
    <div>
      <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
    </div>
    <div>
      <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
    </div>
    <div>
      <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
    </div>
    <div>
      <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
    </div>
    <div>
      <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
    </div>
    <div>
      <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
    </div>
  </dd></dl>

  <dl class="typelist extensionMethods">
    <dt>Extension Methods</dt>
    <dd>
  <div>
      <a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
  </div>
  <div>
      <a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
  </div>
  <div>
      <a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
  </div>
  <div>
      <a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
  </div>
  <div>
      <a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
  </div>
  <div>
      <a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
  </div>
  <div>
      <a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
  </div>
  </dd></dl>





  <h2 class="section" id="constructors">Constructors
</h2>


  <a id="Hi_Numerical_Acts_ActSpiralMcXyzContour__ctor_" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.#ctor*"></a>

  <h3 id="Hi_Numerical_Acts_ActSpiralMcXyzContour__ctor_Hi_Geom_Vec3d_Hi_Geom_Vec3d_Hi_Geom_Vec3d_Hi_Geom_Vec3d_System_Int32_System_TimeSpan_System_Func_Hi_Geom_Vec3d_Hi_Geom_DVec3d__" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.#ctor(Hi.Geom.Vec3d,Hi.Geom.Vec3d,Hi.Geom.Vec3d,Hi.Geom.Vec3d,System.Int32,System.TimeSpan,System.Func{Hi.Geom.Vec3d,Hi.Geom.DVec3d})">
  ActSpiralMcXyzContour(Vec3d, Vec3d, Vec3d, Vec3d, int, TimeSpan, Func&lt;Vec3d, DVec3d&gt;)
  
  </h3>

  <div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.Numerical.Acts.ActSpiralMcXyzContour.html">ActSpiralMcXyzContour</a> class with the specified parameters.</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public ActSpiralMcXyzContour(Vec3d programPosBegin, Vec3d programPosEnd, Vec3d programPosCenterOnBeginPlane, Vec3d centerNormal, int additionalCircleNum, TimeSpan actDuration, Func&lt;Vec3d, DVec3d&gt; programPosToMcFunc)</code></pre>
  </div>

  <h4 class="section">Parameters</h4>
  <dl class="parameters">
    <dt><code>programPosBegin</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd><p>The beginning position in program coordinates.</p>
</dd>
    <dt><code>programPosEnd</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd><p>The ending position in program coordinates.</p>
</dd>
    <dt><code>programPosCenterOnBeginPlane</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd><p>The center position of the spiral in program coordinates.</p>
</dd>
    <dt><code>centerNormal</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd><p>The normal vector of the center plane.</p>
</dd>
    <dt><code>additionalCircleNum</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
    <dd><p>The number of additional circles in the spiral movement.</p>
</dd>
    <dt><code>actDuration</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.timespan">TimeSpan</a></dt>
    <dd><p>The duration of the contour movement.</p>
</dd>
    <dt><code>programPosToMcFunc</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;<a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a>, <a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a>&gt;</dt>
    <dd><p>The function to convert program position to machine coordinates.</p>
</dd>
  </dl>












  <h2 class="section" id="properties">Properties
</h2>


  <a id="Hi_Numerical_Acts_ActSpiralMcXyzContour_ActDuration_" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.ActDuration*"></a>

  <h3 id="Hi_Numerical_Acts_ActSpiralMcXyzContour_ActDuration" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.ActDuration">
  ActDuration
  
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the duration of the action.</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public TimeSpan ActDuration { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.timespan">TimeSpan</a></dt>
    <dd></dd>
  </dl>




  <h4 class="section" id="Hi_Numerical_Acts_ActSpiralMcXyzContour_ActDuration_remarks">Remarks</h4>
  <div class="markdown level1 remarks"><p>The duration represents:</p>
<ul>
<li>The time required to complete the action</li>
<li>Should be positive and finite</li>
<li>Zero duration indicates an instantaneous action</li>
<li>Used for scheduling and timing calculations</li>
</ul>
</div>




  <a id="Hi_Numerical_Acts_ActSpiralMcXyzContour_AdditionalCircleNum_" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.AdditionalCircleNum*"></a>

  <h3 id="Hi_Numerical_Acts_ActSpiralMcXyzContour_AdditionalCircleNum" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.AdditionalCircleNum">
  AdditionalCircleNum
  
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the number of additional circles in the spiral movement.</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public int AdditionalCircleNum { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
    <dd></dd>
  </dl>








  <a id="Hi_Numerical_Acts_ActSpiralMcXyzContour_CenterNormal_" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.CenterNormal*"></a>

  <h3 id="Hi_Numerical_Acts_ActSpiralMcXyzContour_CenterNormal" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.CenterNormal">
  CenterNormal
  
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the normal vector of the center plane.</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public Vec3d CenterNormal { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd></dd>
  </dl>








  <a id="Hi_Numerical_Acts_ActSpiralMcXyzContour_ProgramPosBegin_" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.ProgramPosBegin*"></a>

  <h3 id="Hi_Numerical_Acts_ActSpiralMcXyzContour_ProgramPosBegin" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.ProgramPosBegin">
  ProgramPosBegin
  
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the beginning position in program coordinates.</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public Vec3d ProgramPosBegin { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd></dd>
  </dl>








  <a id="Hi_Numerical_Acts_ActSpiralMcXyzContour_ProgramPosCenterOnBeginPlane_" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.ProgramPosCenterOnBeginPlane*"></a>

  <h3 id="Hi_Numerical_Acts_ActSpiralMcXyzContour_ProgramPosCenterOnBeginPlane" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.ProgramPosCenterOnBeginPlane">
  ProgramPosCenterOnBeginPlane
  
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the center position of the spiral in program coordinates.</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public Vec3d ProgramPosCenterOnBeginPlane { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd></dd>
  </dl>








  <a id="Hi_Numerical_Acts_ActSpiralMcXyzContour_ProgramPosEnd_" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.ProgramPosEnd*"></a>

  <h3 id="Hi_Numerical_Acts_ActSpiralMcXyzContour_ProgramPosEnd" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.ProgramPosEnd">
  ProgramPosEnd
  
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the ending position in program coordinates.</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public Vec3d ProgramPosEnd { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd></dd>
  </dl>








  <a id="Hi_Numerical_Acts_ActSpiralMcXyzContour_ProgramPosToMcFunc_" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.ProgramPosToMcFunc*"></a>

  <h3 id="Hi_Numerical_Acts_ActSpiralMcXyzContour_ProgramPosToMcFunc" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.ProgramPosToMcFunc">
  ProgramPosToMcFunc
  
  </h3>

  <div class="markdown level1 summary"><p>Gets or sets the function to convert program position to machine coordinates.</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public Func&lt;Vec3d, DVec3d&gt; ProgramPosToMcFunc { get; set; }</code></pre>
  </div>





  <h4 class="section">Property Value</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;<a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a>, <a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a>&gt;</dt>
    <dd></dd>
  </dl>








  <h2 class="section" id="methods">Methods
</h2>


  <a id="Hi_Numerical_Acts_ActSpiralMcXyzContour_GetActMcXyzabcSteps_" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.GetActMcXyzabcSteps*"></a>

  <h3 id="Hi_Numerical_Acts_ActSpiralMcXyzContour_GetActMcXyzabcSteps_Hi_Numerical_MachiningMotionResolutionUtils_IMachiningMotionResolution_System_Double_" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.GetActMcXyzabcSteps(Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution,System.Double)">
  GetActMcXyzabcSteps(IMachiningMotionResolution, double)
  
  </h3>

  <div class="markdown level1 summary"><p>Gets the machine XYZABC steps for this contour.</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public IEnumerable&lt;ActMcXyzabcStep&gt; GetActMcXyzabcSteps(IMachiningMotionResolution ncResolution, double spindleBuckleToToolTipLength)</code></pre>
  </div>

  <h4 class="section">Parameters</h4>
  <dl class="parameters">
    <dt><code>ncResolution</code> <a class="xref" href="Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html">IMachiningMotionResolution</a></dt>
    <dd><p>The machining motion resolution to use for step generation.</p>
</dd>
    <dt><code>spindleBuckleToToolTipLength</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
    <dd><p>The length from spindle buckle to tool tip, used for computing step numbers.</p>
</dd>
  </dl>

  <h4 class="section">Returns</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;<a class="xref" href="Hi.Numerical.Acts.ActMcXyzabcStep.html">ActMcXyzabcStep</a>&gt;</dt>
    <dd><p>A collection of machine XYZABC steps.</p>
</dd>
  </dl>











  <a id="Hi_Numerical_Acts_ActSpiralMcXyzContour_GetDerivative_" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.GetDerivative*"></a>

  <h3 id="Hi_Numerical_Acts_ActSpiralMcXyzContour_GetDerivative_Hi_Geom_Vec3d_Hi_Geom_Vec3d_Hi_Geom_Vec3d_Hi_Geom_Vec3d_System_Int32_Hi_Geom_Vec3d__System_Double__System_Double__Hi_Geom_Vec3d__System_Double__System_Double__" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.GetDerivative(Hi.Geom.Vec3d,Hi.Geom.Vec3d,Hi.Geom.Vec3d,Hi.Geom.Vec3d,System.Int32,Hi.Geom.Vec3d@,System.Double@,System.Double@,Hi.Geom.Vec3d@,System.Double@,System.Double@)">
  GetDerivative(Vec3d, Vec3d, Vec3d, Vec3d, int, out Vec3d, out double, out double, out Vec3d, out double, out double)
  
  </h3>

  <div class="markdown level1 summary"><p>Get derivatives.</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void GetDerivative(Vec3d begin, Vec3d end, Vec3d centerOnBeginPlane, Vec3d centerNormal, int additionalCircleNum, out Vec3d arrowBeginOnProj, out double r0, out double r1, out Vec3d axialMove, out double angleOnProj, out double approxCurveLength)</code></pre>
  </div>

  <h4 class="section">Parameters</h4>
  <dl class="parameters">
    <dt><code>begin</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd></dd>
    <dt><code>end</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd></dd>
    <dt><code>centerOnBeginPlane</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd></dd>
    <dt><code>centerNormal</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd></dd>
    <dt><code>additionalCircleNum</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
    <dd></dd>
    <dt><code>arrowBeginOnProj</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd></dd>
    <dt><code>r0</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
    <dd></dd>
    <dt><code>r1</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
    <dd></dd>
    <dt><code>axialMove</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd><p>synchronized move along the axis</p>
</dd>
    <dt><code>angleOnProj</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
    <dd></dd>
    <dt><code>approxCurveLength</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
    <dd></dd>
  </dl>












  <a id="Hi_Numerical_Acts_ActSpiralMcXyzContour_GetNcDerivative_" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.GetNcDerivative*"></a>

  <h3 id="Hi_Numerical_Acts_ActSpiralMcXyzContour_GetNcDerivative_Hi_Geom_Vec3d_Hi_Geom_Vec3d_Hi_Geom_Vec2d_System_Int32_System_Boolean_System_Int32_Hi_Geom_Vec3d__System_Double__System_Double__Hi_Geom_Vec3d__System_Double__System_Double__" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.GetNcDerivative(Hi.Geom.Vec3d,Hi.Geom.Vec3d,Hi.Geom.Vec2d,System.Int32,System.Boolean,System.Int32,Hi.Geom.Vec3d@,System.Double@,System.Double@,Hi.Geom.Vec3d@,System.Double@,System.Double@)">
  GetNcDerivative(Vec3d, Vec3d, Vec2d, int, bool, int, out Vec3d, out double, out double, out Vec3d, out double, out double)
  
  </h3>

  <div class="markdown level1 summary"><p>Calculates the derivative parameters for numerical control spiral movement.</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void GetNcDerivative(Vec3d ncBegin, Vec3d ncEnd, Vec2d ncCenterVec2d, int planeNormalDir, bool isCcw, int additionalCircleNum, out Vec3d arrowBeginOnProj, out double r0, out double r1, out Vec3d axialMove, out double angleOnProj, out double approxCurveLength)</code></pre>
  </div>

  <h4 class="section">Parameters</h4>
  <dl class="parameters">
    <dt><code>ncBegin</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd><p>The beginning position in NC coordinates.</p>
</dd>
    <dt><code>ncEnd</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd><p>The ending position in NC coordinates.</p>
</dd>
    <dt><code>ncCenterVec2d</code> <a class="xref" href="Hi.Geom.Vec2d.html">Vec2d</a></dt>
    <dd><p>The center position vector in 2D NC coordinates.</p>
</dd>
    <dt><code>planeNormalDir</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
    <dd><p>The direction of the plane normal (0=X, 1=Y, 2=Z).</p>
</dd>
    <dt><code>isCcw</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
    <dd><p>Indicates whether the movement is counter-clockwise.</p>
</dd>
    <dt><code>additionalCircleNum</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
    <dd><p>The number of additional circles in the spiral movement.</p>
</dd>
    <dt><code>arrowBeginOnProj</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd><p>The output arrow begin position on projection.</p>
</dd>
    <dt><code>r0</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
    <dd><p>The output starting radius.</p>
</dd>
    <dt><code>r1</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
    <dd><p>The output ending radius.</p>
</dd>
    <dt><code>axialMove</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
    <dd><p>The output axial movement vector.</p>
</dd>
    <dt><code>angleOnProj</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
    <dd><p>The output angle on projection.</p>
</dd>
    <dt><code>approxCurveLength</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
    <dd><p>The output approximate curve length.</p>
</dd>
  </dl>












  <a id="Hi_Numerical_Acts_ActSpiralMcXyzContour_ToString_" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.ToString*"></a>

  <h3 id="Hi_Numerical_Acts_ActSpiralMcXyzContour_ToString" data-uid="Hi.Numerical.Acts.ActSpiralMcXyzContour.ToString">
  ToString()
  
  </h3>

  <div class="markdown level1 summary"><p>Returns a string that represents the current object.</p>
</div>
  <div class="markdown level1 conceptual"></div>

  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override string ToString()</code></pre>
  </div>


  <h4 class="section">Returns</h4>
  <dl class="parameters">
    <dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
    <dd><p>A string that represents the current object.</p>
</dd>
  </dl>












</article>

        <div class="contribution d-print-none">
        </div>


      </div>

      <div class="affix">
        <nav id="affix"></nav>
      </div>
    </main>

    <div class="container-xxl search-results" id="search-results"></div>

    <footer class="border-top text-secondary">
      <div class="container-xxl">
        <div class="flex-fill">
          <span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
        </div>
      </div>
    </footer>
  </body>
</html>
